1. Field of Invention
This invention relates to a small data processing unit for business and communications applications and more particularly to a small micro program processing unit having a micro instruction controlled peripheral interrupt request resolution.
2. Description of the Prior Art
Many business enterprises do not always have sufficient data processing requirements to justify the employment of a full-scale general purpose data processing system. Often the requirements of such companies can be fulfilled by electronic accounting and billing machines which can be considered to be small special purpose computers. On the other hand, such small special purpose computers, as existed in the prior art, are too limited in capability to accept programs that have been written in the so-called higher level program languages.
An alternative method of handling data processing requirements of small or medium sized enterprises is that of having on-site remote terminals which are coupled to a distant large scale data processing system in a time-sharing manner. In many instances, the data processing requirements of a particular business will be a mix of accounting and billing tasks, and also of other processes which require a large computational capability. To meet this situation terminal processors are provided which not only allow for the time-sharing of a larger computer, but which are also capable of performing specific processing routines. In the case of terminal processors, as well as small business processors, emphasis is placed on the cost of the system so as to make the system available to a wide variety of smaller companies. In the past, this has limited the ability of the user to move to full-scale general purpose data processing systems, as such a system's change has required the conversion of the user's previous programs to the more flexible languages for which the larger system is adopted.
In the past, the lack of program compatability existed to some degree between systems from the same manufacturing source, but was even more acute between systems built by different companies, since different designers employ different instruction formats which differ in length; and also employ different field sizes within the instruction format. To overcome such differences in "machine languages", a variety of different higher level programming languages were developed, among the more common of which are FORTRAN, COBOL and ALGOL. Programs written in such programming languages could be encoded and used in different computer systems; however, such programs had to first be translated into the machine language of the particular system which translation was performed by a systems program sometimes called a compiler, and if such a compiler had not been provided for a particular programming language, then the computer user would have to rewrite his program in a language for which the system did have a compiler.
A particular manner that may be employed to readily accomodate programs written in different higher level languages has been that of micro programming. At one time, micro programming was considered as an engineering design tool whereby the machine instruction wired decoder was replaced by a table look-up memory containing various sets of control signals as required to condition the various gates and registers for data transfer as specified by the machine language instruction. In this manner, the machine language instruction was executed by sequencing through a plurality of locations in the table look-up memory. In more sophisticated processors, the number of gates and registers involved are increased in number with a proportionate increase in the number of control signals to be stored and a resultant increase in the size and cost of the table look-up memory. In order to reduce the size of the table look-up memory, the respective sets of control signals are encoded in binary code to become what is generally referred to as micro operators or micro instructions that are then decoded by a wired decoder which, nevertheless, is less expensive than a wired decoder required for a machine language instruction.
The wide use of large-scale integrated circuitry has made it practical to implement the micro instruction memory as a read-write memory. This, in turn, allows the particular sets of micro instructions stored in that memory to be dynamically changed so as to free the processor from limitations upon its functions and capabilities. With such variable micro programming, the processor is not restricted to one particular machine language or subject instruction format. Since no one subject instruction format is preferred, that format can now be chosen in accordance with any program requirement. This, in turn, provides a small data processor that can be dynamically changed to accommodate a complete spectrum of applications from scientific to business including accounting and billing. One of the few remaining restrictions on the system adaptability is the number of input/output or peripheral channels the system can accommodate.
It is, then, an object of the present invention to provide an inexpensive data processor that can nevertheless accommodate a plurality of peripheral channels.
It is another object of the present invention to provide a micro program data processor requiring a relatively simple and inexpensive peripheral interrupt priority resolution.
It is still another object of the present invention to provide a micro program data processor having a plurality of channels, the interrupt priority of which can be readily and flexibly changed.